/**
 * Classe de gestion d'un Lecteur de la bibliotheque
 * @author PINTO Alexandre
 * @version 2.0
 *
 */
import java.io.Serializable;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.Observable;

public class Lecteur extends Observable implements Serializable
{
	private int numLecteur;
	private String nom;
	private String prenom;
	private String adresse;
	private String tel;
	private ArrayList<Emprunt> emprunts;
	
	private static int num = 0;
	
	public Lecteur(String nom, String prenom, String adresse, String tel) {
		super();
		this.numLecteur = genererNum();
		this.nom = nom;
		this.prenom = prenom;
		this.adresse = adresse;
		this.tel = tel;
		this.emprunts = new ArrayList<Emprunt>();
	}
	
	public ArrayList<Emprunt> getEmprunts() {
		return emprunts;
	}

	public void ajouterEmprunt(Emprunt e)
	{
		this.emprunts.add(e);
	}
	
	public void supprimerEmprunt(int index)
	{
		this.emprunts.remove(index);
	}
	
	private int genererNum()
	{
		int ret = num;
		num++;
		return ret;
	}
	
	public int getNum() {
		return numLecteur;			
	}
	public void setNum(int newNumLecteur) {
		this.numLecteur = newNumLecteur;
	}
	public String getNom() {
		return nom;
	}
	public void setNom(String nom) {
		this.nom = nom;
	}
	public String getPrenom() {
		return prenom;
	}
	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}
	public String getAdresse() {
		return adresse;
	}
	public void setAdresse(String adresse) {
		this.adresse = adresse;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	
	public boolean peutEmprunter()
	{
		boolean check = true;
		if(emprunts.size()<Controleur.MAXEMPRUNT)
		{
			for(Emprunt e : emprunts)
			{
				if(ESDate.retard(e.getDateFin(),new GregorianCalendar()) != 0)
						check = false;
			}
		}
		else 
			check = false;
		return check;
	}
}
